小编典典

如何在AngularJS中检测onKeyUp?

angularjs

如何在AngularJS中检测onKeyUp?

我正在寻找类似于ngChange的’ngOnkeyup’指令,但是找不到合适的东西。

如果没有这样的指令,是否有一种从浏览器本地onkeyup事件调用控制器的干净方法?


阅读 443

收藏
2020-07-04

共1个答案

小编典典

编辑:请参阅下面的maklemenz的第二个答案,它引用了新的内置ng-keyup指令

您可以使用angular-ui库

使用angular-ui,您可以

<input ui-event="{keyup: 'myFn($event)'}"

如果您不想使用其他库,最有效且最简单的方法是:

JS

myApp.directive('onKeyup', function() {
  return function(scope, elm, attrs) {
    elm.bind("keyup", function() {
      scope.$apply(attrs.onKeyup);
    });
  };
});

HTML:

<input on-keyup="count = count + 1">

编辑
:如果要检测按下了哪个键,则实际上有两个基本选项。您可以在指令中添加属性以处理指令中允许的键,也可以将按下的键传递给控制器​​。我通常会建议该指令处理key方法。

这是两种方式的示例:http :
//jsfiddle.net/bYUa3/2

2020-07-04